home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / oop_tp55.zip / LIST5_7.PAS < prev    next >
Pascal/Delphi Source File  |  1990-02-01  |  1KB  |  51 lines

  1. program Listing5_7;
  2.  
  3. uses FrenchVb;  { Listing5_6 converted to a unit. }
  4.  
  5. type
  6.  
  7. IrregularVerb = object( Verb )
  8.                 PresentTense: Ending;
  9.                 constructor Init( Inf, FPSin, SPSin, TPSin,
  10.                                        FPPlu, SPPlu, TPPlu : string );
  11.                 function VerbForm( E : Person ) : string; virtual;
  12.                 end;
  13.  
  14. constructor IrregularVerb.Init;
  15. begin
  16.      Verb.Init( 'etre' );
  17.      PresentTense[fps] := FPSin;
  18.      PresentTense[sps] := SPSin;
  19.      PresentTense[tps] := TPSin;
  20.      PresentTense[fpp] := FPPlu;
  21.      PresentTense[spp] := SPPlu;
  22.      PresentTense[tpp] := TPPlu;
  23. end;
  24.  
  25. function IrregularVerb.VerbForm( E : Person ) : string;
  26. begin
  27.      VerbForm := PresentTense[ E ];
  28. end;
  29.  
  30. var
  31.    repondre : RE_Verb;
  32.    finir    : IR_Verb;
  33.    manquer  : ER_Verb;
  34.    etre     : IrregularVerb;
  35.  
  36. begin
  37.      repondre.Init( 'repondre' );
  38.      finir.Init( 'finir' );
  39.      manquer.Init( 'manquer' );
  40.      etre.Init( 'etre', 'suis', 'es', 'est', 'sommes', 'etes', 'sont');
  41.            {     ^                                      ^        }
  42.            {       'e' with caret beneath is ASCII 136           }
  43.  
  44.      repondre.ConjugateVerb;
  45.      finir.ConjugateVerb;
  46.      manquer.ConjugateVerb;
  47.      etre.ConjugateVerb;
  48.  
  49. end.
  50.  { Listing 5-7 }
  51.